SARIMA (Seasonal ARIMA) মডেল হল ARIMA মডেলের একটি উন্নত সংস্করণ, যা সিজনাল টাইম সিরিজ ডেটা বিশ্লেষণের জন্য ব্যবহৃত হয়। যখন টাইম সিরিজে সিজনাল প্যাটার্ন (seasonal patterns) বা ঋতু পরিবর্তন (seasonal changes) থাকে, তখন SARIMA মডেলটি ARIMA মডেলের সাথে সিজনাল উপাদান যুক্ত করে। SARIMA মডেলটি ARIMA মডেলের মতই কাজ করে, তবে এটি সিজনাল পার্টকে অন্তর্ভুক্ত করে, যা টাইম সিরিজের প্রতি ঋতু বা সিজন অনুযায়ী পরিবর্তনশীলতা বিশ্লেষণ করে।
SARIMA মডেলের সাধারণ ফর্ম
SARIMA মডেলের ফর্মুলা হল:
এখানে:
- : AR (AutoRegressive) অংশের অর্ডার (non-seasonal part)।
- : ডিফারেন্সিংয়ের স্তর (non-seasonal part)।
- : MA (Moving Average) অংশের অর্ডার (non-seasonal part)।
- : সিজনাল AR অংশের অর্ডার।
- : সিজনাল ডিফারেন্সিং স্তর।
- : সিজনাল MA অংশের অর্ডার।
- : সিজনাল পিরিয়ড (যেমন, 12 মাস একটি বছর, 4 কোয়ার্টার একটি বছর)।
SARIMA মডেলটি ঐতিহ্যগত ARIMA মডেলটির সাথে সিজনাল উপাদান যুক্ত করে, এবং এটি সিজনাল প্যাটার্নগুলিকে মডেলিং করতে সক্ষম।
SARIMA মডেলের কাজের ধাপ
- সিজনাল ডিফারেন্সিং: SARIMA মডেলটি সাধারণত সিজনাল ডিফারেন্সিং ব্যবহার করে, যা সিজনাল প্যাটার্নের কারণে সময়ের মধ্যে পরিবর্তনগুলো সরিয়ে দেয়। এটি মূলত টাইম সিরিজের পূর্ববর্তী ঋতু (season) থেকে মানের পার্থক্য বের করার মাধ্যমে কাজ করে।
- ডিফারেন্সিং: যেমন ARIMA মডেলটি সাধারণ ডিফারেন্সিং ব্যবহার করে ডেটাকে স্টেশনারি করতে, SARIMA মডেলটি সিজনাল ডিফারেন্সিং ব্যবহার করে।
- অটো-রিগ্রেসিভ (AR) এবং মুভিং এভারেজ (MA) কম্পোনেন্টস: SARIMA মডেল AR এবং MA কম্পোনেন্টসের উপর ভিত্তি করে, যেখানে পূর্ববর্তী সময়ের মান (AR) এবং পূর্ববর্তী ত্রুটির উপর ভিত্তি করে (MA) বর্তমান মান অনুমান করা হয়। সিজনাল AR এবং MA কম্পোনেন্টগুলি সিজনাল পার্টের উপর প্রভাব ফেলে।
- সিজনাল পিরিয়ড (Seasonal Period): সিজনাল পিরিয়ড টাইম সিরিজের সিজনালিটি নির্দেশ করে (যেমন, হলে এটি মাস ভিত্তিক সিজনালিটি নির্দেশ করে)।
SARIMA মডেলের উপকারিতা
- সিজনাল প্যাটার্ন মডেলিং: SARIMA মডেলটি সিজনাল প্রবণতা এবং ঋতুবদল ভালোভাবে মডেল করতে সাহায্য করে।
- লং-টার্ম পূর্বাভাস: এটি সময়ের সাথে পরিবর্তিত সিজনাল প্যাটার্নের পরিবর্তন বিশ্লেষণ করতে সক্ষম, যা দীর্ঘমেয়াদী পূর্বাভাসের জন্য সহায়ক।
SARIMA মডেলের উদাহরণ
ধরা যাক, আমাদের কাছে মাসিক বিক্রয় ডেটা রয়েছে, যেখানে প্রতি বছর বিক্রয়ের ধারা সিজনালভাবে পরিবর্তিত হয়। এই ক্ষেত্রে SARIMA মডেল ব্যবহার করে আমরা সিজনাল ট্রেন্ড এবং সিজনাল পরিবর্তনগুলি বিশ্লেষণ করতে পারি।
SARIMA মডেল ফর্ম:
এখানে:
- , , : সাধারণ AR, ডিফারেন্সিং, MA অংশ।
- , , : সিজনাল AR, ডিফারেন্সিং, MA অংশ।
- : সিজনাল পিরিয়ড, অর্থাৎ ১২ মাসে একটি সিজন।
SARIMA মডেলের কোড উদাহরণ (Python)
import pandas as pd
from statsmodels.tsa.statespace.sarimax import SARIMAX
import matplotlib.pyplot as plt
# Sample monthly sales data (Monthly Sales over 3 years)
data = pd.read_csv('sales_data.csv', parse_dates=['Date'], index_col='Date')
data = data['Sales']
# Fit a SARIMA model
model = SARIMAX(data, order=(1, 1, 1), seasonal_order=(1, 1, 1, 12))
result = model.fit()
# Make predictions
predictions = result.predict(start='2022-01-01', end='2022-12-01')
# Plot results
plt.plot(data, label='Actual Sales')
plt.plot(predictions, label='Predicted Sales', linestyle='--')
plt.legend()
plt.title('SARIMA Model - Sales Prediction')
plt.show()
সারাংশ
SARIMA মডেল, বা Seasonal ARIMA, হল ARIMA মডেলের একটি উন্নত সংস্করণ যা সিজনাল ডেটাকে বিশ্লেষণ করতে ব্যবহৃত হয়। এটি সিজনাল ডিফারেন্সিং, সিজনাল AR এবং MA কম্পোনেন্ট ব্যবহার করে টাইম সিরিজের সিজনাল প্যাটার্ন মডেল করতে সাহায্য করে। SARIMA মডেলটি সিজনাল প্রবণতা বিশ্লেষণ এবং ভবিষ্যতের পূর্বাভাস তৈরি করতে উপযোগী, বিশেষত যখন টাইম সিরিজের মধ্যে সিজনাল প্রভাব থাকে।
SARIMA (Seasonal ARIMA) মডেল একটি উন্নত টাইম সিরিজ মডেল যা ARIMA (AutoRegressive Integrated Moving Average) মডেলের মৌলিক ধারণাকে ব্যবহার করে, তবে এটি সিজনাল (ঋতুবদ্ধ) বৈশিষ্ট্য এবং ট্রেন্ড বিশ্লেষণ করতে সক্ষম। SARIMA মডেলটি বিশেষভাবে এমন টাইম সিরিজ ডেটার জন্য উপযোগী, যেখানে সিজনাল প্যাটার্ন বা ঋতুবদ্ধ পরিবর্তনগুলি বিদ্যমান থাকে।
SARIMA মডেলটি মূলত তিনটি অংশের সমন্বয়ে গঠিত:
- Seasonal AR (Seasonal Autoregressive)
- Seasonal I (Seasonal Integrated)
- Seasonal MA (Seasonal Moving Average)
এই অংশগুলির মাধ্যমে টাইম সিরিজের সিজনাল প্রবণতা এবং ট্রেন্ড চিহ্নিত করা হয় এবং ভবিষ্যত পূর্বাভাস তৈরি করা হয়।
SARIMA মডেলের গঠন (গাণিতিক ফর্ম)
SARIMA মডেলটি সাধারণত নিচের মতো একটি গাণিতিক ফর্মে প্রকাশ করা হয়:
এখানে:
- হল বর্তমান পর্যবেক্ষণ।
- হল বীজগণিতিক অপারেটর।
- হল সাধারণ ARIMA প্যারামিটার।
- হল সিজনাল AR, I, MA প্যারামিটার।
- হল সিজনাল পিরিয়ড (যেমন: 12 মাসে একবার সিজনালিটি, সেক্ষেত্রে )।
এছাড়া, হল হোয়াইট নয়েজ বা ত্রুটি টার্ম।
SARIMA মডেলের Components:
SARIMA মডেলটি মূলত তিনটি প্রধান কম্পোনেন্টে বিভক্ত হয়: Seasonal AR (Autoregressive), Seasonal I (Integrated), এবং Seasonal MA (Moving Average)।
১. Seasonal AR (Seasonal Autoregressive)
বর্ণনা: Seasonal AR অংশটি টাইম সিরিজের পূর্ববর্তী সিজনাল মানের ওপর ভিত্তি করে বর্তমান মানের পূর্বাভাস দেয়। এটি পূর্ববর্তী সময়ের সিজনাল পর্যবেক্ষণের সম্পর্ক বিশ্লেষণ করে।
ফর্ম:
এখানে সিজনাল শিফট অপারেটর (lag operator) এবং সিজনাল AR প্যারামিটার।
ব্যবহার:
- সিজনাল প্যাটার্নের সাথে সম্পর্কিত পূর্ববর্তী পর্যবেক্ষণগুলির ওপর ভিত্তি করে ভবিষ্যতের মান অনুমান করা।
উদাহরণ: মাসিক বিক্রয় ডেটায়, এক মাসের বিক্রয় পূর্ববর্তী বছরের একই মাসের বিক্রয়ের উপর প্রভাবিত হতে পারে।
২. Seasonal I (Seasonal Integrated)
বর্ণনা: Seasonal I অংশটি সিজনাল ট্রেন্ডের পরিবর্তন বা উন্নতি দূর করতে ব্যবহৃত হয়। এটি সিজনাল পার্থক্য (seasonal differencing) কৌশল ব্যবহার করে। Seasonal I মূলত সিজনাল ট্রেন্ড বা প্যাটার্ন সরানোর জন্য ব্যবহৃত হয়।
ফর্ম:
এখানে সিজনাল ইন্টিগ্রেশন (seasonal integration) অপারেটর, যা সিজনাল পার্থক্য বের করতে ব্যবহৃত হয়।
ব্যবহার:
- সিজনাল ট্রেন্ড বা প্যাটার্ন সরানোর জন্য।
- ডেটার গড় এবং ভ্যারিয়েন্সকে স্টেশনারি (stationary) করতে।
উদাহরণ: একটি দেশের মাসিক জিডিপি পরিসংখ্যান যদি ঋতুবদ্ধ বৃদ্ধি দেখায়, তবে সিজনাল ইন্টিগ্রেশন এর মাধ্যমে এই ট্রেন্ড সরানো যেতে পারে।
৩. Seasonal MA (Seasonal Moving Average)
বর্ণনা: Seasonal MA অংশটি টাইম সিরিজের পূর্ববর্তী সিজনাল ত্রুটি বা হোয়াইট নয়েজের উপর ভিত্তি করে বর্তমান মানের পূর্বাভাস দেয়। এটি সিজনাল পার্থক্য বা ত্রুটি ধরা এবং সেটি ব্যবহার করে ভবিষ্যতের পূর্বাভাস তৈরি করে।
ফর্ম:
এখানে সিজনাল MA প্যারামিটার এবং সিজনাল শিফট অপারেটর।
ব্যবহার:
- পূর্ববর্তী সিজনাল ত্রুটি বা হোয়াইট নয়েজের ভিত্তিতে ভবিষ্যতের মানের পূর্বাভাস করা।
উদাহরণ: মাসিক বিক্রয় ডেটাতে একটি নির্দিষ্ট মাসে ব্যতিক্রমী বিক্রয় হলে, সিজনাল MA প্যারামিটার সেটি ব্যাখ্যা করতে পারে।
SARIMA মডেলের সুবিধা
- সিজনাল প্যাটার্ন বিশ্লেষণ: SARIMA টাইম সিরিজে সিজনাল প্যাটার্ন শনাক্ত করতে সক্ষম, যা সাধারণ ARIMA মডেল করতে পারে না।
- লম্বা সময়কাল বিশ্লেষণ: সিজনাল উপাদান বিশ্লেষণ করা হয় এবং তার উপর ভিত্তি করে ভবিষ্যতের পূর্বাভাস তৈরি করা হয়।
- অনুকূল ভবিষ্যৎ পূর্বাভাস: সিজনাল প্রবণতা এবং ট্রেন্ডের সাথে সম্পর্কিত ভবিষ্যতের মান সঠিকভাবে অনুমান করা সম্ভব।
সারাংশ
SARIMA মডেল হল ARIMA মডেলের একটি উন্নত সংস্করণ যা সিজনাল (ঋতুবদ্ধ) বৈশিষ্ট্যসমূহ বিশ্লেষণ করতে সক্ষম। এটি সিজনাল AR (AutoRegressive), Seasonal I (Integrated), এবং Seasonal MA (Moving Average) উপাদানগুলির সমন্বয়ে গঠিত। SARIMA টাইম সিরিজ ডেটার সিজনাল প্রবণতা, ট্রেন্ড এবং হোয়াইট নয়েজ বিশ্লেষণ করে ভবিষ্যতের পূর্বাভাস তৈরি করতে সহায়ক।
SARIMA (Seasonal Autoregressive Integrated Moving Average) মডেল একটি শক্তিশালী টাইম সিরিজ ফোরকাস্টিং মডেল, যা ARIMA মডেলের একটি সম্প্রসারণ এবং সিজনাল প্যাটার্ন বা ঋতুবদ্ধ পরিবর্তনসমূহ (seasonality) বিবেচনায় নেয়। SARIMA মডেলটি ট্রেন্ড এবং সিজনাল প্যাটার্নসহ অন্যান্য উপাদানগুলো বিশ্লেষণ করতে পারে, এবং এর মাধ্যমে টাইম সিরিজ ডেটার ভবিষ্যতের পূর্বাভাস করা সম্ভব হয়।
SARIMA মডেলের গঠন
SARIMA মডেলের গঠন নিম্নরূপ:
এখানে,
- : অটো-রিগ্রেসিভ (AR) অর্ডার (Lag পিরিয়ড)
- : ডিফারেন্সিংয়ের অর্ডার (স্টেশনারিটি অর্জনের জন্য)
- : মুভিং এভারেজ (MA) অর্ডার
- : সিজনাল অটো-রিগ্রেসিভ (Seasonal AR) অর্ডার
- : সিজনাল ডিফারেন্সিং (Seasonal differencing) অর্ডার
- : সিজনাল মুভিং এভারেজ (Seasonal MA) অর্ডার
- : সিজনাল পিরিয়ড (ঋতু বা সিজনাল প্যাটার্নের দৈর্ঘ্য)
SARIMA মডেলটি একটি টাইম সিরিজের সিজনাল এবং নন-সিজনাল উপাদানকে একত্রিত করে ভবিষ্যতের পূর্বাভাস তৈরি করে।
SARIMA মডেলের কার্যপ্রণালী:
- ডেটার সিজনাল প্যাটার্ন শনাক্ত করা: প্রথমে, টাইম সিরিজের সিজনাল প্যাটার্ন বা ঋতুবদ্ধ পরিবর্তন শনাক্ত করা হয়। এটি অটো-কোর্লেশন প্লট (ACF) বা পার্টিয়াল অটো-কোর্লেশন প্লট (PACF) ব্যবহার করে সিজনাল ল্যাগ শনাক্ত করতে সাহায্য করে।
- মডেল প্যারামিটার নির্বাচন:
- নির্বাচন করতে ACF এবং PACF প্লট ব্যবহার করা হয়।
- সিজনাল প্যারামিটার সিজনাল প্লট বা পিরিয়ডের মাধ্যমে নির্ধারণ করা হয়।
- মডেল ফিট করা: SARIMA মডেলটি একটি নির্দিষ্ট ডেটা সেটে ফিট করা হয়। এর জন্য Python এর
statsmodelsলাইব্রেরি বা অন্যান্য স্ট্যাটিস্টিক্যাল টুল ব্যবহার করা যেতে পারে। - ফোরকাস্টিং: মডেলটি ফিট করার পরে, ভবিষ্যতের জন্য পূর্বাভাস তৈরি করা হয়।
Python এ SARIMA মডেল ব্যবহার করা
নিচে SARIMA মডেল ব্যবহার করে টাইম সিরিজ ফোরকাস্টিংয়ের একটি উদাহরণ দেওয়া হলো:
ধরা যাক, আমাদের কাছে একটি টাইম সিরিজ ডেটা আছে এবং আমরা সেটি SARIMA মডেল ব্যবহার করে ভবিষ্যতের জন্য পূর্বাভাস করতে চাই।
১. প্রয়োজনীয় লাইব্রেরি ইনস্টল করা:
pip install statsmodels pandas matplotlib
২. কোড উদাহরণ:
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.statespace.sarimax import SARIMAX
# Sample time series data (monthly sales data)
data = {'Month': ['2020-01', '2020-02', '2020-03', '2020-04', '2020-05', '2020-06', '2020-07', '2020-08', '2020-09', '2020-10', '2020-11', '2020-12'],
'Sales': [200, 210, 215, 225, 230, 240, 250, 260, 270, 280, 290, 300]}
# Convert the data to a DataFrame
df = pd.DataFrame(data)
df['Month'] = pd.to_datetime(df['Month'], format='%Y-%m')
df.set_index('Month', inplace=True)
# Plot the data
df.plot()
plt.title('Monthly Sales Data')
plt.xlabel('Month')
plt.ylabel('Sales')
plt.show()
# Fit the SARIMA model
model = SARIMAX(df['Sales'],
order=(1, 1, 1), # AR, I, MA parameters (p, d, q)
seasonal_order=(1, 1, 1, 12), # Seasonal AR, I, MA parameters (P, D, Q, s)
enforce_stationarity=False, enforce_invertibility=False)
# Fit the model
sarima_model = model.fit()
# Make a forecast
forecast = sarima_model.get_forecast(steps=6) # Forecast the next 6 months
forecast_values = forecast.predicted_mean
# Plot the forecast
plt.figure(figsize=(10,6))
plt.plot(df.index, df['Sales'], label='Historical Data')
plt.plot(pd.date_range(df.index[-1], periods=7, freq='M')[1:], forecast_values, label='Forecast', color='red')
plt.title('SARIMA Forecasting for Next 6 Months')
plt.xlabel('Month')
plt.ylabel('Sales')
plt.legend()
plt.show()
কোডের বিশ্লেষণ:
- ডেটা প্রস্তুতি: প্রথমে টাইম সিরিজ ডেটা প্রস্তুত করা হয় এবং এটি একটি pandas DataFrame এ রূপান্তরিত করা হয়।
- SARIMA মডেল ফিট করা:
SARIMAXক্লাস ব্যবহার করে SARIMA মডেলটি তৈরি করা হয়, যেখানে:order=(1, 1, 1)হল AR, I, MA প্যারামিটার।seasonal_order=(1, 1, 1, 12)হল সিজনাল AR, I, MA প্যারামিটার এবং সিজনাল পিরিয়ড 12 মাস (মাসিক ডেটার জন্য)।
- ফোরকাস্টিং: মডেলটি ভবিষ্যতের 6 মাসের জন্য পূর্বাভাস তৈরি করে।
- ভিজ্যুয়ালাইজেশন: পূর্বাভাসের সাথে ঐতিহাসিক ডেটা প্লট করা হয়।
SARIMA মডেল কিভাবে কাজ করে:
- অটো-রিগ্রেসিভ উপাদান (AR): এটি পূর্ববর্তী সময়ের মানের উপর ভিত্তি করে বর্তমান মান অনুমান করে।
- মুভিং এভারেজ উপাদান (MA): এটি পূর্ববর্তী ত্রুটি (error) বা গোলমাল এর উপর ভিত্তি করে বর্তমান মান অনুমান করে।
- সিজনাল উপাদান: SARIMA সিজনাল উপাদানগুলো (ঋতুবদ্ধ প্রবণতা) গ্রহণ করে, যেমন বছরে ১২ মাস, বা অন্য কোনো ঋতু অনুযায়ী।
- ডিফারেন্সিং (Differencing): টাইম সিরিজের স্টেশনারিটি অর্জন করতে ডিফারেন্সিং প্রয়োগ করা হয়, যা টেম্পোরারি ট্রেন্ড বা সিজনাল প্যাটার্ন দূর করতে সাহায্য করে।
সারাংশ
SARIMA মডেল টাইম সিরিজ ডেটার সিজনাল এবং নন-সিজনাল উপাদানগুলো একত্রিত করে ভবিষ্যতের পূর্বাভাস তৈরি করে। এটি ARIMA মডেলের একটি সম্প্রসারণ, যা টাইম সিরিজে সিজনাল প্যাটার্ন এবং অন্যান্য পরিবর্তন বিশ্লেষণ করতে সাহায্য করে। SARIMA মডেল ব্যবহার করে আমরা টাইম সিরিজের ট্রেন্ড, সিজনালিটি এবং মুভিং এভারেজ সংক্রান্ত তথ্যগুলোকে মডেল করতে এবং ভবিষ্যত মান পূর্বাভাস করতে পারি।
SARIMA (Seasonal AutoRegressive Integrated Moving Average) মডেলটি ARIMA মডেলের একটি বিস্তৃত সংস্করণ যা সিজনাল টাইম সিরিজ ডেটা বিশ্লেষণের জন্য ব্যবহৃত হয়। এটি টাইম সিরিজে সিজনাল প্যাটার্ন বা ঋতু পরিবর্তন (যেমন মাসিক বা ত্রৈমাসিক বিক্রয়) এবং অন্যান্য প্রভাব বিশ্লেষণ করে ভবিষ্যতের পূর্বাভাস তৈরি করতে সাহায্য করে।
SARIMA মডেলটি ARIMA মডেলের মতো কাজ করে, তবে এতে সিজনাল (ঋতু) অংশ যোগ করা হয়েছে। SARIMA মডেলের অর্ডার নির্বাচন করতে ছয়টি প্যারামিটার ব্যবহৃত হয়: । এগুলি মডেলটির অ্যাডমিনিস্ট্রেটিভ (non-seasonal) এবং সিজনাল (seasonal) অংশের জন্য প্যারামিটার নির্দেশ করে।
SARIMA মডেলের Order (p, d, q, P, D, Q)
- (AR অংশের অর্ডার):
- বর্ণনা: হলো AR (AutoRegressive) অংশের অর্ডার, যা পূর্ববর্তী সময়ের পরিসংখ্যান বা মানের উপর ভিত্তি করে বর্তমান মান অনুমান করে।
- অর্থ: এটি বর্তমান পর্যবেক্ষণের জন্য পূর্ববর্তী সময়ের ডেটার সম্পর্ক নির্দেশ করে।
- (ডিফারেন্সিং অর্ডার):
- বর্ণনা: হলো টাইম সিরিজের স্টেশনারিটি অর্জন করার জন্য ডিফারেন্সিংয়ের (difference) সংখ্যা। এটি মূলত টাইম সিরিজের ট্রেন্ড সরানোর জন্য ব্যবহৃত হয়।
- অর্থ: যদি টাইম সিরিজে ট্রেন্ড থাকে, তাহলে ডিফারেন্সিংয়ের মাধ্যমে এটি সরানো হয়।
- (MA অংশের অর্ডার):
- বর্ণনা: হলো MA (Moving Average) অংশের অর্ডার, যা বর্তমান পর্যবেক্ষণের জন্য পূর্ববর্তী ত্রুটির (error terms) উপর ভিত্তি করে বর্তমান মান অনুমান করে।
- অর্থ: এটি টাইম সিরিজের পূর্ববর্তী ত্রুটির উপর ভিত্তি করে বর্তমান পর্যবেক্ষণের হিসাব করবে।
সিজনাল প্যারামিটার (P, D, Q)
- (সিজনাল AR অংশের অর্ডার):
- বর্ণনা: হলো সিজনাল AR (Seasonal AutoRegressive) অংশের অর্ডার, যা পূর্ববর্তী ঋতুর পর্যবেক্ষণের উপর ভিত্তি করে বর্তমান পর্যবেক্ষণ অনুমান করে।
- অর্থ: সিজনাল প্যাটার্ন বা ঋতু পরিবর্তনের উপর ভিত্তি করে পূর্ববর্তী ঋতুর ডেটা ব্যবহার করে ভবিষ্যৎ পূর্বাভাস তৈরি করা।
- (সিজনাল ডিফারেন্সিং অর্ডার):
- বর্ণনা: হলো সিজনাল ডিফারেন্সিংয়ের অর্ডার, যা সিজনাল প্যাটার্ন বা ঋতু পরিবর্তন সরানোর জন্য ব্যবহৃত হয়।
- অর্থ: এটি সিজনাল প্যাটার্ন দূর করতে সিজনাল ডিফারেন্সিং প্রয়োগ করার সংখ্যা নির্দেশ করে।
- (সিজনাল MA অংশের অর্ডার):
- বর্ণনা: হলো সিজনাল MA (Seasonal Moving Average) অংশের অর্ডার, যা সিজনাল ত্রুটির (seasonal error terms) উপর ভিত্তি করে বর্তমান মান অনুমান করে।
- অর্থ: সিজনাল ত্রুটির উপর ভিত্তি করে পূর্ববর্তী ঋতুর ত্রুটি বা বিচ্যুতি ব্যবহার করে ভবিষ্যতের মান অনুমান করা।
SARIMA মডেলের পূর্ণ ফর্ম:
SARIMA মডেলের পূর্ণ ফর্ম হলো:
এখানে:
- হলো অ্যাডমিনিস্ট্রেটিভ (non-seasonal) অংশের অর্ডার।
- হলো সিজনাল (seasonal) অংশের অর্ডার।
- হলো সিজনাল পিরিয়ড, যা সময়ের সাথে সিজনাল চক্রের সংখ্যা নির্ধারণ করে (যেমন: 12 মাস, 4 ত্রৈমাসিক)।
SARIMA মডেলের Order নির্বাচন
SARIMA মডেলের উপযুক্ত অর্ডার নির্বাচন করার জন্য বিভিন্ন কৌশল ব্যবহার করা হয়। কিছু সাধারণ পদ্ধতি হলো:
- অটোকরিলেশন প্লট (ACF) এবং পার্টিয়াল অটোকরিলেশন প্লট (PACF):
- ACF (Autocorrelation Function) এবং PACF (Partial Autocorrelation Function) গ্রাফগুলি ব্যবহার করে , , , , , এর মান নির্বাচন করা যায়। ACF এবং PACF এর মাধ্যমে আপনি AR এবং MA অংশের ল্যাগ পিরিয়ড শনাক্ত করতে পারেন।
- ACF সাধারণত MA অংশের জন্য সাহায্য করে এবং PACF AR অংশের জন্য সাহায্য করে।
- AIC/BIC (Akaike Information Criterion / Bayesian Information Criterion):
- AIC এবং BIC হল মডেল নির্বাচন পদ্ধতি যা মডেলের ফিট এবং জটিলতা বিবেচনা করে। কম AIC বা BIC মান যেকোনো মডেলের জন্য সবচেয়ে উপযুক্ত বলে গণ্য হয়।
- গবেষণার ভিত্তিতে বেছে নেওয়া:
- যদি সিজনাল প্রভাব স্পষ্ট থাকে, তবে সিজনাল ল্যাগ নির্বাচন করার জন্য গবেষণা বা ডোমেইন জ্ঞান ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, মাসিক ডেটার জন্য (12 মাস) এবং ত্রৈমাসিক ডেটার জন্য হতে পারে।
উদাহরণ:
ধরা যাক, আপনি একটি মাসিক বিক্রয় ডেটা বিশ্লেষণ করছেন। আপনি যদি 12 মাসের সিজনাল প্যাটার্ন পান, তাহলে আপনি SARIMA মডেলটি নিম্নরূপ লিখতে পারেন:
এখানে:
- হবে আপনার ডেটার জন্য ARIMA অংশের অর্ডার।
- হবে সিজনাল AR, MA, এবং ডিফারেন্সিং অংশের অর্ডার, এবং হবে সিজনাল পিরিয়ড (12 মাস)।
সারাংশ
SARIMA মডেল টাইম সিরিজ বিশ্লেষণের জন্য একটি শক্তিশালী পদ্ধতি যা সিজনাল প্যাটার্ন বা ঋতু পরিবর্তন বিশ্লেষণ করতে ব্যবহৃত হয়। এটি non-seasonal এবং seasonal অংশের জন্য আলাদা অর্ডার নির্বাচন করতে সাহায্য করে: (non-seasonal) এবং (seasonal)। মডেলের অর্ডার নির্বাচন করার জন্য ACF/PACF, AIC/BIC, এবং ডোমেইন জ্ঞান ব্যবহার করা হয়।
SARIMA (Seasonal AutoRegressive Integrated Moving Average) মডেল হলো একটি উন্নত টাইম সিরিজ মডেল যা সাধারণ ARIMA মডেলের সাথে সিজনাল পার্ট যোগ করে। SARIMA মডেল সিজনাল ট্রেন্ড এবং সিজনাল ফ্লাকচুয়েশনসহ টাইম সিরিজের পূর্বাভাস তৈরি করতে ব্যবহৃত হয়। একটি সফল SARIMA মডেল তৈরি করার পর, তার কার্যকারিতা বা মডেলটির যথার্থতা মূল্যায়ন করা অত্যন্ত গুরুত্বপূর্ণ। SARIMA মডেল মূল্যায়নের জন্য কিছু সাধারণ evaluation techniques বা মূল্যায়ন পদ্ধতি রয়েছে, যেগুলি মডেলের পূর্বাভাসের নির্ভুলতা পরীক্ষা করতে সাহায্য করে।
১. AIC (Akaike Information Criterion) এবং BIC (Bayesian Information Criterion)
বর্ণনা:
AIC এবং BIC হল দুটি গুরুত্বপূর্ণ মডেল সিলেকশন ক্রাইটেরিয়া, যা মডেলের সঠিকতা এবং জটিলতার মধ্যে ভারসাম্য বজায় রাখে। এগুলি কমপ্লেক্সিটি (প্যারামিটার সংখ্যা) এবং ফিট (মডেলের ফিটিং ক্ষমতা) এর উপর ভিত্তি করে মডেলের কার্যকারিতা পরিমাপ করে। AIC এবং BIC এর কম মান সাধারণত ভালো মডেল নির্দেশ করে।
- AIC: কম AIC মান থাকা মডেলটি সেরা এবং এটি মডেল ফিটিং এবং জটিলতার মধ্যে একটি ভারসাম্য স্থাপন করে।
- BIC: BIC এর মান AIC এর মতোই, তবে এটি মডেলের জটিলতার জন্য বেশি শাস্তি প্রদান করে। সাধারণত BIC কম থাকলে মডেলটি ভালো।
ফর্মুলা:
AIC:
যেখানে হলো মডেলের প্যারামিটার সংখ্যা এবং হলো মডেলের লগ-লাইকেলিহুড।
BIC:
যেখানে হলো ডেটার স্যাম্পল সাইজ।
উদাহরণ:
from statsmodels.tsa.statespace.sarimax import SARIMAX
from statsmodels.tools.eval_measures import aic, bic
# Fit the SARIMA model
model = SARIMAX(y_train, order=(1, 1, 1), seasonal_order=(1, 1, 1, 12))
results = model.fit()
# Get AIC and BIC
print(f"AIC: {results.aic}")
print(f"BIC: {results.bic}")
২. RMSE (Root Mean Squared Error)
বর্ণনা:
RMSE হল একটি পরিমাপ যা মডেলের পূর্বাভাসের ত্রুটির মাত্রা পরিমাপ করে। এটি বর্তমান মডেলের পূর্বাভাস এবং আসল মানের মধ্যে গড় ত্রুটি বের করে এবং তার বর্গমূল নেয়। কম RMSE মান একটি ভালো মডেলের সূচক।
ফর্মুলা:
যেখানে:
- হলো আসল মান।
- হলো পূর্বাভাসকৃত মান।
- হলো ডেটা পয়েন্টের সংখ্যা।
উদাহরণ:
import numpy as np
from sklearn.metrics import mean_squared_error
# Calculate RMSE
y_pred = results.predict(start=len(y_train), end=len(y_train)+len(y_test)-1)
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
print(f"RMSE: {rmse}")
৩. MAE (Mean Absolute Error)
বর্ণনা:
MAE হল পূর্বাভাসের গড় মানের ত্রুটি, যা পূর্বাভাস এবং আসল মানের মধ্যে পার্থক্য নিয়ে গণনা করা হয়। MAE মডেলের কার্যকারিতা পরিমাপ করতে খুবই সাধারণ এবং সরল পদ্ধতি।
ফর্মুলা:
যেখানে:
- হলো আসল মান।
- হলো পূর্বাভাসকৃত মান।
- হলো ডেটা পয়েন্টের সংখ্যা।
উদাহরণ:
# Calculate MAE
mae = np.mean(np.abs(y_test - y_pred))
print(f"MAE: {mae}")
৪. Residual Analysis
বর্ণনা:
Residual analysis হল SARIMA মডেলের একটি গুরুত্বপূর্ণ মূল্যায়ন পদ্ধতি, যেখানে মডেল থেকে প্রাপ্ত অবশিষ্ট ত্রুটি বা রেসিডুয়ালগুলি বিশ্লেষণ করা হয়। রেসিডুয়ালগুলি মডেল ফিটিংয়ের ত্রুটি প্রদর্শন করে, এবং এটি নিশ্চিত করতে সাহায্য করে যে মডেলটি সমস্ত মৌলিক প্যাটার্ন ধরা ফেলেছে।
- স্বাভাবিকতা পরীক্ষা: রেসিডুয়ালগুলি স্বাভাবিকভাবে বিতরণ হওয়া উচিত।
- হোয়াইট নয়েজ পরীক্ষা: রেসিডুয়ালগুলি সময়ের সাথে সম্পর্কিত হওয়া উচিত নয় (অর্থাৎ, তাদের মধ্যে কোনো নির্দিষ্ট প্যাটার্ন থাকা উচিত নয়)।
উদাহরণ:
import matplotlib.pyplot as plt
# Plot residuals
residuals = y_test - y_pred
plt.figure(figsize=(10, 6))
plt.subplot(121)
plt.plot(residuals)
plt.title('Residuals over Time')
plt.subplot(122)
plt.hist(residuals, bins=50)
plt.title('Histogram of Residuals')
plt.show()
৫. Cross-Validation
বর্ণনা:
Cross-validation হল মডেল মূল্যায়নের আরেকটি গুরুত্বপূর্ণ পদ্ধতি, যা ডেটার বিভিন্ন সাবসেট ব্যবহার করে মডেলটি প্রশিক্ষিত এবং মূল্যায়িত হয়। টাইম সিরিজের ক্ষেত্রে TimeSeriesSplit ব্যবহৃত হয়, যেখানে ডেটাকে টাইম ফ্রেম অনুসারে ভাগ করা হয় এবং পূর্বাভাস মডেলটির পারফরম্যান্স পরীক্ষা করা হয়।
পদ্ধতি:
- TimeSeriesSplit: এটি ডেটাকে একটি সিরিজে বিভক্ত করে, যেখানে প্রশিক্ষণ এবং টেস্ট সেট সময়ের সাথে চলে।
উদাহরণ:
from sklearn.model_selection import TimeSeriesSplit
# Cross-validation
tscv = TimeSeriesSplit(n_splits=5)
for train_index, test_index in tscv.split(y_train):
train, test = y_train[train_index], y_train[test_index]
model = SARIMAX(train, order=(1, 1, 1), seasonal_order=(1, 1, 1, 12))
results = model.fit()
print(results.aic)
সারাংশ
SARIMA মডেল মূল্যায়নের জন্য বিভিন্ন পদ্ধতি ব্যবহার করা হয়, যেমন AIC/BIC, RMSE, MAE, Residual Analysis, এবং Cross-Validation। এই মূল্যায়ন পদ্ধতিগুলোর মাধ্যমে মডেলের কার্যকারিতা পরীক্ষা করা যায় এবং মডেলের সঠিকতা ও নির্ভুলতা নিশ্চিত করা যায়। SARIMA মডেলটি সিজনাল টাইম সিরিজ ডেটার জন্য উপযুক্ত এবং উপরের পদ্ধতিগুলি মডেলের পারফরম্যান্স বিশ্লেষণে সাহায্য করে।
Read more